package git.soulbgm.service;

import git.soulbgm.common.pojo.PageInfo;
import git.soulbgm.pojo.dto.UserDto;
import git.soulbgm.pojo.entity.User;

import java.util.List;

/**
 * 用户相关业务逻辑接口
 *
 * @author SoulBGM
 * @date 2020-09-10 17:14:11
 */
public interface UserService {

    /**
     * 分页查询用户信息
     *
     * @param pageNum  页码
     * @param pageSize 每页显示数
     * @param user     查询条件
     * @return 分页之后的查询信息
     */
    PageInfo find(Integer pageNum, Integer pageSize, UserDto user);

    /**
     * 按用户ID查询用户信息
     *
     * @param id 用户ID
     * @return 用户信息
     */
    User findById(Long id);

    /**
     * 添加用户信息
     *
     * @param user 用户信息
     * @param roleIdList 角色ID列表
     * @return 添加之后的用户信息
     */
    User add(User user, List<Long> roleIdList);

    /**
     * 修改用户信息
     *
     * @param user 用户信息
     * @param roleIdList 角色ID列表
     * @return 修改成功返回true否则返回false
     */
    Boolean update(User user, List<Long> roleIdList);

    /**
     * 按用户ID列表删除用户信息
     *
     * @param idList ID列表
     * @return 删除成功返回true否则返回false
     */
    Boolean delete(List idList);

}
